The present disclosure relates generally to data communications. More particularly, the present disclosure relates to data communication switches.
As broadband data communication networks proliferate, video providers are increasingly turning to such networks for delivery of content to customers. For example, systems have been developed to deliver digital television to customers over these networks. These systems can provide live TV as well as Video on Demand (VOD).
VOD allows a customer to receive a program from the beginning by streaming the program data to the customer at a time of the customer's choosing. Thus with VOD, the entire program must be replicated for each customer, consuming considerable bandwidth.
With live TV, the customer joins the program in progress. Because each program is delivered to customers at substantially the same time, technologies such as multicast delivery can be used to reduce the number of copies of the program traversing the network, thereby conserving considerable bandwidth.
FIG. 1 shows a prior art live TV distribution system 100. In system 100, a TV server 102 provides multiple TV channels to a network 104, and a multicast device 106 provides the TV channels to clients 108A-N on request. In terms of the Open Systems Interconnection (OSI) Basic Reference Model, multicast device 106 can be a layer-2 (data link layer) device or a layer-3 (network layer) device. System 100 must accomplish three tasks: (A) determine which channels have been requested by clients 108, (B) notify upstream nodes in network 104 of the requested channels, and (C) deliver each channel, which arrives in the form of multicast packets from network 104, to the appropriate clients 108.
Each channel is assigned a multicast group. When a customer selects a channel, his client 108 sends a message to multicast device 106 requesting to join the corresponding multicast group. The message is usually implemented as an Internet Group Management Protocol (IGMP) join message.
When implemented as a layer-3 device, multicast device 106 accepts the IGMP message (task A) and then notifies network 104 of the selected multicast group using multicast routing protocols (task B). In response, network 104 determines an efficient path for delivery of the multicast packets in that multicast group to multicast device 106.
When implemented as a layer-2 device, multicast device 106 simply forwards the IGMP message to network 104, where a layer-3 device accepts the IGMP message and notifies upstream nodes in network 104 (task B). Multicast device 106 also “snoops” the IGMP message to determine the client 108 and multicast group indicated by the message (task A).
For task C, when implemented as a layer-3 device, multicast device 106 includes a hardware replication engine that makes a copy of each received multicast packet for each client 108 that has requested to join the multicast group to which the packet belongs. But when implemented as a layer-2 device, multicast device 106 uses the layer-2 multicast address in each multicast packet as a broadcast address, so that the packet is sent to all ports of the virtual local-area network (VLAN) on which the packet arrived. Therefore, either all clients 108 who request a particular multicast group must be members of the same VLAN, or if the clients 108 are in different VLANs, multicast device 106 must make a copy of each packet for each VLAN containing a client requesting the multicast group.
Because duplication in each VLAN wastes bandwidth, and for commercial and security reasons clients 108 in many cases cannot share a VLAN, one solution is to implement multicast device 106 as a layer-3 device, which as noted above, includes a hardware replication engine that can replicate a single incoming multicast stream into each client's VLAN. However, a layer-3 device is often seen as too expensive, in terms of both cost and management overhead.
A common solution is to implement multicast device 106 as a layer-2 device that can enroll clients 108 in a “multicast” VLAN used only for multicast distribution. All multicast streams are sent in the “multicast” VLAN towards clients 108, but clients 108 are not allowed to use the multicast VLAN for any other purpose. Instead, each client 108 uses additional, separate VLANs for regular traffic. In this solution, packets are confined to a single VLAN as required. However, as a layer-2 device, multicast device 106 simply passes IGMP messages upstream, where they can be broadcast, wasting additional bandwidth.